home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 526-550 / disk_539 / rpn / leggimi < prev    next >
Text File  |  1992-05-06  |  11KB  |  241 lines

  1.  
  2.  
  3.  
  4.      Questa è la descrizione del programma RPN,
  5.      aggiornata alla revisione 1.00 del 31 gennaio 1990.
  6.                                                                 MLO 900131
  7.      ---------------------------------------------------------------------
  8.  
  9.  
  10.      1) Presentazione e storia
  11.      
  12.             RPN è un programma interattivo che permette di eseguire calcoli
  13.      aritmetici,  trigonometrici e statistici  utilizzando tastiera e mouse
  14.      di  un  personal  computer  Commodore  Amiga,  e simulando con esso il
  15.      funzionamento  di un calcolatore da tasca Hewlett-Packard. RPN è stato
  16.      sviluppato  originariamente   in  FORTRAN   77  per   un  HP21MX,  poi
  17.      trasportato  su VAX, e implementato anche in  BASIC su PC IBM prima di
  18.      essere  tradotto  in  C  (Lattice  C  V5.04) per l'Amiga; il programma
  19.      originale   simulava  un  pocket  computer  HP-32,  e  nelle  versioni
  20.      successive   si   sono   introdotte   alcune   peculiarità  di modelli
  21.      successivi, in particolare dell'HP-11C.
  22.             Il funzionamento dei pocket computers Hewlett-Packard è fondato
  23.      sulla  notazione polacca  inversa (RPN)  introdotta da Lukasiewicz nel
  24.      1924,  il  cui  principio  fondamentale  è: si dichiarano le variabili
  25.      immediatamente prima delle funzioni che operano su di esse. La maggior
  26.      parte  delle calcolatrici da tasca segue  quasta logica per il calcolo
  27.      delle funzioni di una sola variabile: per estrarre una radice quadrata
  28.      si introduce l'argomento e poi si preme il tasto appropriato. RPN  non
  29.      complica  l'introduzione  dei  dati  usando  la  notazione inversa per
  30.      alcune funzioni e quella algebrica (che è più comoda per la  scrittura
  31.      su  carta ma meno  adatta per il  calcolo) in altre;  ma usa la logica
  32.      inversa  per  tutte  le  funzioni  di  due  variabili,  comprese  le 4
  33.      operazioni elementari.
  34.  
  35.  
  36.      2) Primo contatto
  37.  
  38.             Mandato  in  esecuzione  il  programma  (comando  RPN da CLI, o
  39.      doppio  click  sull'icona  di  RPN),  si  presentano sullo schermo due
  40.      finestre:  la prima contiene  i "tasti" del  calcolatore, da puntare e
  41.      selezionare con il mouse; la seconda i 4 registri dello stack ed i  16
  42.      registri  di memoria. Sei di questi, da A ad F, servono per l'accumulo
  43.      dei  risultati  parziali  nei  calcoli  statistici (media e deviazione
  44.      standard,   interpolazione  lineare);  tutti   sono  comunque  usabili
  45.      dall'utente per conservarvi dei dati.
  46.             L'introduzione dei valori numerici avviene con la tastiera,  ed
  47.      i  caratteri introdotti compaiono nello "string gadget" con la scritta
  48.      Input Field:  questo si  seleziona automaticamente  premendo un  tasto
  49.      associabile  ad un numero floating point (in notazione a virgola fissa
  50.      o  scientifica);  è  possibile  correggere  quanto è stato introdotto,
  51.      perchè  la traduzione dei caratteri  in numero si fa  solo o quando si
  52.      deseleziona  il  gadget  (premendo  il  tasto  Return),  o  quando  si
  53.      seleziona  un "tasto" od un'opzione dei  menu a discesa. Quando questo
  54.      avviene, il numero viene depositato nel registro dello stack; e,  se
  55.      era  stata  scelta  una  operazione  da  eseguire  sul  numero  appena
  56.      introdotto, questa viene compiuta subito dopo.
  57.  
  58.  
  59.  
  60.                                      - 1 -
  61.  
  62.  
  63.  
  64.             Un'altra  delle caratteristiche che rendono RPN comodo da usare
  65.      è il trattamento  degli errori: ogni  volta che un'operazione  di tipo
  66.      aritmetico è vietata (per esempio si tenta di effettuare una divisione
  67.      per  zero)  compare  un  requester  che  segnala  l'errore  ma  nessun
  68.      cambiamento è operato sui registri e sullo stack, per non  danneggiare
  69.      eventuali  risultati  parziali  in  essi  contenuti;  e  anche quando,
  70.      malauguratamente,   una   operazione   sbagliata   venisse effettuata,
  71.      l'opzione  Last  X  dei  menu  a  discesa  consentirebbe di riprendere
  72.      l'ultimo dato usato e, compiendo l'operazione inversa, di ripristinare
  73.      lo stato dello stack e dei registri.
  74.  
  75.  
  76.      3) Un esempio
  77.  
  78.             Vediamo ed esempio come si procede per il calcolo del valore di
  79.  
  80.  
  81.                               (Log(X) + 1) / 3.14:
  82.  
  83.           si introduce X, battendo le cifre una dopo l'altra;
  84.  
  85.           si seleziona con il mouse il gadget "Ln" (logaritmo  natura-
  86.           le): il  risultato parziale Log(X) compare sullo schermo nel
  87.           registro X;
  88.  
  89.           si introduce la costante 1 con la tastiera e si seleziona il
  90.           gadget  "+" (addizione): il risultato parziale Log(X)+1 com-
  91.           pare sullo schermo;
  92.  
  93.           si introduce con la tastiera  la costante 3.14 (o si  usa il
  94.           gadget  "pi greco" per introdurre la costante matematica con
  95.           16 cifre significative):  sullo schermo sono visibili i  due
  96.           fattori;
  97.  
  98.           si seleziona il gadget "/" (divisione) ed il risultato fina-
  99.           le compare nel registro X.
  100.  
  101.             I vantaggi sono evidenti: non si deve mai far uso di parentesi;
  102.      non   è  necessario  un  tasto   conclusivo  ("uguale")  per  dire  al
  103.      calcolatore quando  eseguire le  operazioni; ed  inoltre sono  sempre 
  104.      visibili ed accessibili i risultati parziali.
  105.             Per  un calcolo così semplice  sono sufficienti due dei quattro
  106.      registri dello stack; per calcoli più complessi si rimanda ai  manuali
  107.      che accompagnano i pocket computers Hewlett-Packard. In questi calcoli
  108.      la  visibilità  continua  dello  stack  e  dei  registri  di memoria è
  109.      perticolarmente utile  per l'apprendimento  della logica  RPN e quindi
  110.      interessante anche dal punto di vista didattico.
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.                                      - 2 -
  121.  
  122.  
  123.  
  124.      4) Funzioni disponibili
  125.  
  126.           Le quattro operazioni aritmetiche.
  127.  
  128.           Reciproco, radice quadrata, quadrato, potenza, percentuale.
  129.  
  130.           Funzioni esponenziali e logaritmiche, naturali e decimali.
  131.  
  132.           Seno, coseno e tangente trigonometrici ed iperbolici, e loro
  133.           funzioni inverse.
  134.  
  135.           Funzioni di conversione: a radianti, a gradi sessagesimali o
  136.           centesimali;  dal sistema decimale  a quello sessagesimale e
  137.           viceversa; da coordinate rettangolari a polari e viceversa.
  138.  
  139.           Funzioni statistiche:  media, deviazione  standard, correla-
  140.           zione,  interpolazione lineare, calcolo di punti sulla retta
  141.           interpolante e dell'errore sulle ordinate dei punti interpo-
  142.           lati con la formula di Fisher.
  143.  
  144.           Operazioni aritmetiche dirette sui registri di memoria.
  145.  
  146.  
  147.             Per  le  funzioni  trigonometriche  la  misura degli angoli può
  148.      essere  scelta in  radianti, gradi  sessagesimali o gradi centesimali;
  149.      tutti  i  calcoli  sono  eseguiti  in  doppia precisione (64 bits); il
  150.      risultato  viene  presentato  in  virgola  fissa  quando possibile, od
  151.      automaticamente  convertito  in  notazione  scientifica se l'esponente
  152.      supera le capacità di visualizzazione.
  153.             Il   tasto   Inv   serve   solo   ad   introdurre   le funzioni
  154.      trigonometriche inverse, e non ha effetto con altre funzioni; Hyp  poi
  155.      introduce  le funzioni trigonometriche iperboliche, e Hyp Inv (oppure 
  156.      Inv Hyp) le loro inverse.
  157.             Per un buon uso di  RPN si raccomanda di consultare  un manuale
  158.      di  istruzioni  per  un  pocket  computer Hewlett-Packard tipo HP-11C;
  159.      nelle pagine seguenti  si riassumono le  istruzioni per le  operazioni
  160.      fondamentali.
  161.  
  162.  
  163.      5) Brevi note
  164.  
  165.           Il tasto "%" calcola in l'per cento di Y.
  166.  
  167.           Le  sequenze Recall <operazione> registro compiono un Enter,
  168.           quindi mettono in il risultato di X <operazione> registro.
  169.           
  170.  
  171.           Le sequenze Store <operazione> registro mettono nel registro
  172.           il risultato di Registro <operazione> X.
  173.  
  174.           Per media e deviazione standard, si impostano i dati in X  e
  175.           si preme il tasto Sommatoria +; in è visibile il numero di
  176.           dati  immessi. Premendo Mean la media è in e la deviazione
  177.           standard in Y.
  178.  
  179.  
  180.                                      - 3 -
  181.  
  182.  
  183.           
  184.           Per  l'interpolazione lineare, si impostano le ascisse in 
  185.           e le ordinate in Y; premendo alla fine L.R., l'intercetta  è
  186.           in e la pendenza in Y. I registri di memoria contengono:
  187.  
  188.                          A:            Numero di dati immessi
  189.                          B:            Somma delle X
  190.                          C:            Somma delle al quadrato
  191.                          D:            Somma delle 
  192.                          E:            Somma delle al quadrato
  193.                          F:            Somma dei prodotti per 
  194.  
  195.           e  vengono azzerati con l'opzione Clear accumulator dei menu
  196.           a discesa.
  197.  
  198.           Conversione da coordinate  cartesiane a polari  e viceversa:
  199.           il raggio vettore è in e l'azimuth in Y.
  200.  
  201.  
  202.      6) Il programma
  203.  
  204.             RPN  è  scritto  in  C  per  il  compilatore  SAS-C  (una volta
  205.      Lattice-C) Versione 5.10;  è stato sviluppato  su di un  Amiga 500 con
  206.      512  KBytes di chip RAM e 2.5 MBytes  di Fast Ram, e non dovrebbe dare
  207.      problemi in  nessun'altra configurazione.  Si schedula  da CLI  con il
  208.      comando  RPN, o  da Workbench  selezionando l'icona  relativa (beware:
  209.      real men don't use icons).
  210.             Il programma stesso è accluso in sorgente, con il Makefile  che
  211.      è  servito a  compilarlo ed  a linkarlo;  si dovrebbe  trasportare con
  212.      minime difficoltà sotto l'Aztec-C della Manx.
  213.             Sentitevi liberi di giocare con RPN e di diffonderlo a volontà;
  214.      ma  considerate  che,  anche  se  provato  a lungo, potrebbe contenere
  215.      ancora  qualche errore che si manifesti solo in occasioni particolari.
  216.      Se per caso apportate dei  cambiamenti, per correggere errori o  anche
  217.      solo  perchè non vi piace la forma estetica, siete gentilmente pregati
  218.      di darne comunicazione al sottoscritto:
  219.  
  220.                            Maurizio LORETI (o MLO, o I3NOO)
  221.                            Via G. Donizetti, 6
  222.                      35010 CADONEGHE (PD)
  223.                            ITALY
  224.  
  225.             Sono anche raggiungibile per  posta elettronica come LORETI  at
  226.      IPDINFN  (BITNET), o  come VAXFPD::LORETI  (DECnet); VAXFPD  è il nodo
  227.      numero  38.257  (o  anche  39169)  della  rete. Tutti questi indirizzi
  228.      corrispondono allo stesso computer, un VAX 8600 sotto sistema VMS.
  229.  
  230.                                                    HAVE FUN !
  231.                                                                   by MLO
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.                                      - 4 -
  240.